package org.aspire.phys;

import org.aspire.math.geom.Positioned;

/******************************************************************************
 * An object that is moving around the screen.
 * 
 * @author JPACarabuena
 *****************************************************************************/
public interface Moving extends Positioned {
	
	// ========================================================================
	// Final Fields
	// ========================================================================

	// ========================================================================
	// Getters & Setters
	// ========================================================================

	/**************************************************************************
	 * Return the horizontal speed of the moving object.
	 * 
	 * @return the horizontal speed.
	 *************************************************************************/
	public double getHorizontalSpeed();
	
	/**************************************************************************
	 * Return the vertical speed of the moving object.
	 * 
	 * @return the vertical speed.
	 *************************************************************************/
	public double getVerticalSpeed();
	
	/**************************************************************************
	 * Sets the horizontal speed of the object.
	 * 
	 * @param dx the new horizontal speed of the object.
	 *************************************************************************/
	public void setHorizontalSpeed(double dx);
	
	/**************************************************************************
	 * Sets the vertical speed of the object.
	 * 
	 * @param dy the new vertical speed of the object.
	 *************************************************************************/
	public void setVerticalSpeed(double dy);
	
	// ========================================================================
	// Override Methods
	// ========================================================================

	// ========================================================================
	// Methods
	// ========================================================================

	// ========================================================================
	// Inner & Anonymous Classes
	// ========================================================================
}